home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Creative Computers
/
Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso
/
shareware
/
telecom
/
term_4.1
/
documentation
/
xpr_libs
/
xprzmodem.doc
< prev
next >
Wrap
Text File
|
1994-11-17
|
35KB
|
683 lines
Documentation for XPRZModem.library
Version 2.10, 12 February 1991, by Rick Huebner
|---
| Update comments for XprZmodem.Library
| Version 2.50 Update, 15 November 1991, by William M. Perkins
| Version 2.51 bug fix, 29 January 1992, by John Tillema
| Version 2.52 recompiled, 6 March 1992, by William M. Perkins
| Version 2.54 Update, 28 June 1993, by Olaf `Olsen' Barthel
| Proto additions for the SAS 5.10B Compiler by Jim Cooper
|---
|---
| All of my additions to this documentation are indicated by
| <-- this left margin braketing. -WMP-
|---
1. Introduction (or "What is this thing, anyway?")
---------------------------------------------------
XPRZModem.library is an Amiga shared library (with full Lattice C
source code) which provides ZModem file transfer capability to any
XPR-compatible communications program. The XPR external protocol standard
describes an interface method which allows various file transfer protocols
to be implemented as Amiga shared libraries which may then be used
interchangeably in any compatible communications program. This takes a
heavy load off of the comm program author, who no longer has to support
scads of different file transfer protocols (many of which are quite tricky
to code) in their program in order to make it widely useful and popular.
The comm program is also smaller and more efficient as a result, since all
those obscure protocols (you know, the ones *you* don't need) are no longer
taking up space. The XPR standard also helps users, who can mix and match
their favorite file transfer protocols (and implementations thereof) with
their favorite comm programs. And when new protocols are invented, the
user simply plugs in a new library, and voila!, it's ready to use.
Hopefully, making protocols easy to support will allow more and better comm
programs to be written, as authors can concentrate on their programs
instead of constantly re-inventing the wheel.
Of course, for all of this wonderful stuff to happen, there needs to
be a good selection of these XPR protocol libraries available to the
public. It's the classic chicken-and-egg problem; comm program authors
won't be motivated to support the XPR standard unless there are a goodly
number of protocols available for it. And other programmers won't be
motivated to write XPR protocol libraries until there are a goodly number
of comm programs which can use them. In an effort to do my bit [ B^) ] for
the Amiga community, which has given me so many neat toys to play with over
the past few years, I decided to try and help get the ball rolling.
Hopefully, the early availability of a ZModem library will help
stimulate interest in the XPR standard, resulting in better Amiga telecomms
for all of us. And by making my source code PD, I hope to help others
interested in writing XPR protocol libraries by giving them some serious
example code. Also, having ZModem library code readily available to John
Q. Hacker should help ensure a steady stream of new lemon-fresh enhanced
ZModem libraries (with enzymes) for all of us to use in the future.
Of course, no discussion of the XPR standard would be complete without
giving proper credit to the author, Willy Langeveld of the Stanford Linear
Accelerator Center. Many thanks are due him for this effort. If you have
any further questions about the XPR standard, be sure and download the spec;
it should be available on BIX (since he's a sysop there), or on most other
major systems. And I'll try to keep the current version available on my
BBS, as well.
All files in this archive which are not copyrighted are hereby
released to the public domain (which they were anyway, by way of not being
copyrighted, but I want to make sure YOU realize that). Do as you like
with them. Please make lots of copies and distribute them all over the
place, and make lots of derivative works, and everything! Heck, you can
even publicly perform and/or display this code if you can figure out how...
2. Installation (OK, enough chatter; let's get to work)
--------------------------------------------------------
Couldn't be easier. Just copy the xprzmodem.library file into your
LIBS: directory. All XPR-compatible comm programs should provide a way for
you to select which XPR protocol you wish to use, either by giving you a
file requester showing LIBS:xpr*.library, or by automatically detecting
these libraries and adding them into their menus.
WARNING: Versions of VLT prior to revision 4.107 had a bug in the
xpr_sflush() routine which caused random Guru 3 crashes on some systems. If
you're using a version of VLT older than 4.107, it would be a good idea to
upgrade to the latest rev. Besides, there's a bunch of new features you're
missing, anyway...
ANOTHER WARNING: Versions of VLT prior to 5.034 had a bug in the
xpr_sread() function which caused them to (at least sometimes) fail to
return any bytes received so far when an xpr_sread() call timed out. This
version of XPRZModem.library requires VLT version 5.034 or later. (Yes,
Willy, it really was broken B-))
|---
| XprZmodem.Library version 2.50 and 2.52 tested with WTerm version
| 0.82 and Willy's term program, VLT version 5.045. No problems
| occurred. It should work fine with any term program that was able
| to work with the version 2.10 of XprZmodem.Library. -WMP-
|---
|---
| xprzmodem.library v2.54 *requires* Kickstart 2.04 or higher to
| work properly! Trying to use this library with any previous
| operating system revision will most certainly fail!
| All library texts are now localized, i.e. if a translation
| table for you preferred system language is available, the
| library will issue error messages and such in it. As of this
| writing only a German translation is available. I have included
| a blank catalog translation file (zmodem_blank.ct) for your
| convenience; feel free to translate it to your preferred
| language and mail it to me (see the address at the end of this
| document). It will be included in the next release.
|---
3. Options
-----------
The XPR standard lays out two ways for the comm program user to
specify options for the XPR protocol. The more primitive option is for the
comm program to provide a method of passing an option string to the XPR
library before transferring files. The precise format and usage of this
option string is left up to the XPR protocol author; the comm program just
sends it verbatim. If an environment variable is found with the same name
as the XPR protocol (i.e. there's a file in the ENV: directory called
"xprzmodem"), the comm program is supposed to use this string (contents of
file) to initialize the protocol options. Also, a menu option or some such
should normally be provided which will allow the user to be prompted for
the option string interactively.
Version 2.0 of the XPR standard created a new, more sophisticated way
for the comm program user to specify XPR options. If the comm program
supports it, the XPR library can give the comm program a list of option
prompts, and the comm program can then let the user interactively set the
various options individually, possibly even using nice gadgets and stuff.
In any case, no matter how your particular comm program feels like
handling it, these are the options supported by this implementation of
ZModem:
T{Y|N|?|C} Text translation mode:
TY = Text Yes; if receiving, translate CR/LF pairs or solo
CR chars to normal Amiga LF chars. Ignore data past ^Z.
If sending, suggests to receiver that they should receive
this file in text mode.
TN = Text No; receive file verbatim, without changes. If
sending, suggest to receiver that they receive this
file verbatim, without translations.
T? = Text status unknown; if receiving, use sender's
suggestion as to whether to do EOL translations or not.
If sending, tell receiver to use default mode, 'cause we
don't know either.
TC = Text mode